<?php
namespace app\controller;

use app\Controller;
use think\facade\Filesystem;

class Image extends Controller
{
    /*
     * 上传至本地服务器
     */
    public function upload()
    {
        // 获取表单上传文件 例如上传了001.jpg
        $file = $this->request->file('file');
        // 移动到框架应用根目录/upload/ 目录下
        $savename = Filesystem::disk('public')->putFile('image', $file);
        // 成功上传后 获取上传信息
        $data = $savename;
        return json($data);
    }
    /*
     * 多文件上传
     */
    public function multi(){
        $files = $this->request->file('files');
        $data = [];
        foreach($files as $file){
            // 移动到框架应用根目录/uploads/ 目录下
            $savename = Filesystem::disk('public')->putFile('image', $file);
            // 成功上传后 获取上传信息
            $data[] = $savename;
        }
        return json($data);
    }
    /*
     * 多文件编辑器上传
     */
    public function editor(){
        // 获取表单上传文件 例如上传了001.jpg
        $file = $this->request->file('upload');
        // 移动到框架应用根目录/upload/ 目录下
        $savename = Filesystem::disk('public')->putFile('image', $file);

        //构建返回数组
        return json([
            'uploaded' => true,
            'fileName' => $savename,
            'url' => config('filesystem.disks.public.url') . $savename
        ]);
    }
    /**
     * 图片读取
     */
    public function read($name){
        $file = config('filesystem.disks.public.root') . request()->baseUrl();
        $im = imagecreatefromjpeg($file);
        // file_put_contents(root_path() . '/runtime/123.txt', $file);
        $data = imagejpeg($im);
        imagedestroy($im);

        return json($data)->code(200)->header([
            'Content-Type' => 'image/jpeg'
        ]);
    }
}
